namespace BunnyEater.Service.SystemManagementService.RoleService.Dto
{
    /// <summary>
    /// 权限数据传输对象
    /// </summary>
    public class PermissionDto
    {
        /// <summary>
        /// 权限ID
        /// </summary>
        public string? PermissionId { get; set; }
        /// <summary>
        /// 权限名称
        /// </summary>
        public string? PermissionName { get; set; }
        /// <summary>
        /// 权限路径
        /// </summary>
        public string? PermissionPath { get; set; }
    }

    /// <summary>
    /// 角色列表数据传输对象
    /// </summary>
    public class RoleListDto
    {
        /// <summary>
        /// 角色Id
        /// </summary>
        public string? Id { get; set; }
        /// <summary>
        /// 角色名称
        /// </summary>
        public string? RoleNmae { get; set; }
        /// <summary>
        /// 角色状态（启用/禁用）
        /// </summary>
        public bool State { get; set; }
        /// <summary>
        /// 角色权限名称（多个权限用顿号、隔开）
        /// </summary>
        public string? PermissionNames { get; set; }
        /// <summary>
        /// 权限Id集合（用于新增和修改角色时传递权限ID）
        /// </summary>
        public List<string>? PermissionsIds { get; set; }
    }

    /// <summary>
    /// 简单权限数据传输对象
    /// </summary>
    public class RolePermissionSimpleDto
    {
        /// <summary>
        /// 权限ID
        /// </summary>
        public string? PermissionId { get; set; }
        /// <summary>
        /// 权限名称
        /// </summary>
        public string? PermissionName { get; set; }
    }

    /// <summary>
    /// 角色详情数据传输对象
    /// </summary>
    public class RoleDetailDto
    {
        /// <summary>
        /// 角色Id
        /// </summary>
        public string? Id { get; set; }
        /// <summary>
        /// 角色名称
        /// </summary>
        public string? RoleNmae { get; set; }
        /// <summary>
        /// 角色状态
        /// </summary>
        public bool State { get; set; }
        /// <summary>
        /// 角色权限列表
        /// </summary>
        public List<RolePermissionSimpleDto>? Permissions { get; set; }
    }
}